邏輯閘是電路的基本元件,AND, OR, NOT, XOR 這四個積木搭建成具有基礎運算能力的加法器、乘法器,而後一個重要的電路元件—正反器誕生提供資料儲存的功能,至此,計算機的功能才算完整。
核心運算由 ALU 算術邏輯單元處理,負責加減乘運算(除法被拆成多個乘法和減法的組成),與控制電路搭配構成最簡單的處理器,也就是現今的CPU的雛型。
ALU 本身沒有儲存功能,必須由 Register 暫存器保存資料,而運算後的資料多半會被送往 Memory 保存下來。因為暫存器是珍貴的儲存空間,存取速度快、但數量不多。一般執行的指令會存在 Instruction Memory 等待被讀取,而指令位址被放在 Program Counter 程式暫存器裡面(簡稱PC,特殊暫存器)。
控制電路一般包含以下項目:
//以上內容出自《計算機組織與設計》[1] ,該書用來講解的電路有可能和目前的實際電路有出入,請注意。
datapath 電路佈線可以編碼成指令碼,所以計算機的指令跟電路佈線是息息相關的。雖然還有許多細節沒有談到,但可以了解到資料和指令都是存放在記憶體內,當指令傳送到處理器後,經過解碼轉換成執行的指令,資料則是存放在另一個記憶體,作為參數被暫存器存取/寫入。
x86架構的暫存器[^2] 分別有:AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP,FLAG 這些暫存器。架構大致上和前面提到的差不多,IP就是存放指令位址的暫存器,FLAG是旗標暫存器,通常為條件跳轉所需的資料來源,BP, SP 這兩組暫存器的資料是函數呼叫的返回位址。詳細說可以參照註解連結。
指令集的大致上分成幾類功能:
總結:
這篇花了比想像中還要長的時間寫,文章若有疏漏,還懇請指點,謝謝
[1] "Computer Organization and Design - The Hardware/Software Interface ARM Edition" David A. Patterson, John L. Hennessy
參考資料:計算機組織結構 - HackMD